Cloud computing is the use of computing resources delivered as a service over a communication network, such as the internet. The computer resources may be software, hardware, firmware or combinations of these computer resource types. Typically: (i) users (see definition, below, in Definitions sub-section of the Detailed Description section) access cloud-based applications through a web browser, a light-weight desktop or mobile app; and (ii) the business software and user's data are stored on servers at a remote location. Potential business advantages of cloud computing may include the following: (i) allows companies to avoid upfront infrastructure costs; (ii) allows companies to focus on projects that differentiate their businesses instead of infrastructure; (iii) allows enterprises to get their applications up and running faster, with improved manageability and/or with less maintenance; and/or (iv) enables IT (information technology departments) to more rapidly adjust resources to meet fluctuating and/or unpredictable business demand. Typically, cloud providers: (i) manage the infrastructure and platforms that run cloud applications; and (ii) effect sharing of computing resources in order to achieve coherence and/or economies of scale.
For purposes of this document, middleware is defined as computer software that provides services to software applications beyond those available from the operating system; and middleware is not part of an operating system, not a database management system, and neither is it part of one software application. Typically, middleware facilitates computer communication and input/output.